package cn.dp.cms.service.impl;

import org.springframework.stereotype.Service;

import cn.dp.cms.dao.BaseMapper;
import cn.dp.cms.service.IBaseService;

@Service
public abstract class BaseServiceImpl<T> implements IBaseService<T> {

	/**
     * 定义成抽象方法,由子类实现,完成dao的注入
     *
     * @return BaseMapper实现类
     */
	public abstract BaseMapper<T> getMapper();
	
	/**
	 * 删除实体
	 * @param id 主键
	 * @return
	 */
	public int delete(Integer id) {
		// TODO Auto-generated method stub
		return getMapper().deleteByPrimaryKey(id);
	}

	/**
     * 插入实体
     * @param record 实体
     * @return 影响行数
     */
	public int insert(T record) {
		// TODO Auto-generated method stub
		return getMapper().insertSelective(record);
	}

	/**
     * 获取实体
     * @param id 主键
     * @return 实体
     */
	public T getEntityById(Integer id) {
		// TODO Auto-generated method stub
		return getMapper().selectByPrimaryKey(id);
	}

	/**
     * 根据主键修改实体
     * @param record 实体
     * @return 影响行数
     */
	public int update(T record) {
		// TODO Auto-generated method stub
		return getMapper().updateByPrimaryKeySelective(record);
	}

}
